package com.xyz;

import com.sun.codemodel.internal.JForEach;

public class Main {

    public static void main(String[] args) {
	// write your code here
        //查看当前字符串中，是否包含子串
        //字符串 的 contains 方法，返回 bool 值，true / false
        System.out.println("Hello 是否包含子串 ll : "+"Hello".contains("ll"));

        //获取子串的索引位，如果有多个，取第一次出现的位置
        System.out.println("Hello".indexOf("L")); // 2
        //获取子串的最后的索引位
        System.out.println("Hello".lastIndexOf("l")); // 3
        System.out.println("Hello".indexOf("o"));
        System.out.println("Hello".lastIndexOf("o"));
        //是否以子串开头
        System.out.println("Hello".startsWith("He")); // true
        //是否以子串结尾
        System.out.println("Hello".endsWith("lo")); // true

        //创建字符串 hello
        String s = "hello";
        //将字符串中的 l ，替换为 w
        String x = s.replace('l', 'w'); // "hewwo"，所有字符'l'被替换为'w'
        System.out.println("x = "+x);
        //将 ll 替换为 ~~
        String y = s.replace("ll", "~~"); // "he~~o"，所有子串"ll"被替换为"~~"
        System.out.println("y = "+y);

        //用正则表达式进行匹配替换
        String s1 = "A,,B;C ,D";
        String z =s1.replaceAll("[\\,\\;\\s]+", ",");
        System.out.println("z = "+z);

        //用正则表达式 分割字符串，得到一个字符串数组
        String s2 = "A,B,C,D";
        String[] ss = s2.split("\\,"); // {"A", "B", "C", "D"}
        for (int i = 0; i < ss.length; i++) {
            System.out.println(ss[i]);
        }

        //字符串拼接 join， 静态方法，通过类名 来调用，而非通过对象
        String[] arr = {"A", "B", "C"};
        String s3 = String.join("***", arr); // "A***B***C"
        System.out.println("s3 = "+s3);

        //使用静态方法 valueOf ，可以将普通数据类型转换为字符串
        String.valueOf(123); // "123"
        String.valueOf(45.67); // "45.67"
        String.valueOf(true); // "true"

        int a =5 ;
        String b = "7";
        //如果直接将字符串和数值，用 + 相连，得出的是一个新的字符串，因为数值会被默认自动转换为字符串，然后跟字符串进行拼接
        System.out.println("a+b  ="+(a+b));
        int b1 = Integer.parseInt(b);
        System.out.println("a+b1=" + (a+b1));


    }
}
